package com.example.blog.common.utils;

import com.example.blog.common.pojo.dataobject.BlogInfo;
import com.example.blog.common.pojo.dataobject.UserInfo;
import com.example.blog.common.pojo.request.AddBlogParam;
import com.example.blog.common.pojo.request.UpBlogParam;
import com.example.blog.common.pojo.response.BlogInfoResponse;
import com.example.blog.common.pojo.response.UserInfoResponse;
import org.springframework.beans.BeanUtils;

//转类型
public class BeanConver {
    public static BlogInfoResponse trans(BlogInfo blogInfo){
        BlogInfoResponse blogInfoResponse=new BlogInfoResponse();
        if(blogInfo!=null){
            //意思是复制属性,左边是源,右边是目标,把左边的复制到右边
            BeanUtils.copyProperties(blogInfo,blogInfoResponse);
        }
        //这里blogInfo就变成了blogResponse了
        return blogInfoResponse;
    }

    //UserInfo对象转换为UserInfoResponse对象
        public static UserInfoResponse trans(UserInfo userInfo){
            UserInfoResponse userInfoResponse=new UserInfoResponse();
            if(userInfo!=null){
                //属性复制
                //这段代码通过属性复制实现了对象转换，核心依赖 BeanUtils.copyProperties 的反射机制。
                BeanUtils.copyProperties(userInfo,userInfoResponse);
            }
            return userInfoResponse;
        }

        public static BlogInfo trans(AddBlogParam param){
        BlogInfo blogInfo=new BlogInfo();
        BeanUtils.copyProperties(param,blogInfo);
        return blogInfo;
        }

    public static BlogInfo trans(UpBlogParam param){
        BlogInfo blogInfo=new BlogInfo();
        BeanUtils.copyProperties(param,blogInfo);
        return blogInfo;
    }

}
